package dao;

import java.util.List;

import model.EventType;
import modelInterfaces.IEventType;

/**
*
* Interface that all EventTypeDAOs must support
*/
public interface IEventTypeDAO {

	/**
	 * Create a {@link EventType} in database depending a parameter eventType.
	 * @param eventType	event type to be created
	 * @throws DAOException
	 * @see EventType
	 */
	public void create(IEventType eventType) throws DAOException;
    
	
	/**
	 * Delete a {@link EventType} in database depending a parameter eventType.
	 * @param eventType	event type to be deleted
	 * @throws DAOException
	 * @see EventType
	 */	
	public void delete(IEventType eventType) throws DAOException;
    
	
	/**
	 * Update a {@link EventType} in database depending a parameter eventType.
	 * @param eventType	event type to be updated
	 * @throws DAOException
	 * @see EventType
	 */		
	public void update(IEventType eventType) throws DAOException;
    
	
	/**
	 * Retrieve a {@link EventType} in database depending a parameter id.
	 * @param id numeric identifier of a event type
	 * @return event type 
	 * @throws DAOException
	 * @see EventType
	 */		
	public IEventType retrieve(int id) throws DAOException;
    
	
	/**
	 * Retrieve a list with all event types of database.
	 * @return list with all events types of database. 
	 * @throws DAOException
	 * @see EventType
	 */		
	public List<IEventType> retrieveAll() throws DAOException;
    
}
